package com.dahuyou.domain.service;

import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;

/**
 * map转obj顶层规范接口，只提供过一个核心的生成代码的方法
 */
public interface IMap2ObjGenerator {
    /**
     * 唯一的核心方法，具体的操作步骤在抽象子类中以模板方法的方式提供，之后具体子类提供具体实现，完成业务逻辑，
     * 这样当我们有很多的子类时，重复的工作就不需要做了，而只需要实现特有的功能就行了
     * @param project
     * @param dataContext
     * @param psiFile
     */
    void doGenerate(Project project, DataContext dataContext, PsiFile psiFile);
}
